package com.gxa.mapper;

import com.gxa.domain.entity.StockHistory;
import com.gxa.domain.vo.StockHistoryVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface StockHistoryMapper {
    
    /**
     * 插入上货历史记录
     */
    int insert(StockHistory stockHistory);
    
    /**
     * 批量插入上货历史记录
     */
    int batchInsert(List<StockHistory> stockHistoryList);
    
    /**
     * 分页查询上货历史记录（返回VO对象，包含商品和操作员信息）
     */
    List<StockHistoryVO> selectPage(Map<String, Object> params);
    
    /**
     * 查询上货历史记录总数
     */
    int selectCount(Map<String, Object> params);
    
    /**
     * 根据商品条码查询上货历史记录（返回VO对象）
     */
    List<StockHistoryVO> selectByBarcodeNo(@Param("barcodeNo") String barcodeNo);
    
    /**
     * 根据操作员ID查询上货历史记录（返回VO对象）
     */
    List<StockHistoryVO> selectByOperatorId(@Param("operatorId") Integer operatorId);
    
    /**
     * 根据时间范围查询上货历史记录（返回VO对象）
     */
    List<StockHistoryVO> selectByTimeRange(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 删除单条上货历史记录（使用id作为主键）
     */
    int deleteById(@Param("id") Integer id);

    /**
     * 批量删除上货历史记录（使用id列表）
     */
    int batchDelete(@Param("ids") List<Integer> ids);
} 